﻿using System;
using System.Windows;
using System.Runtime.Serialization;

using SBPweb.PROvibe.Client.Framework.Utilities.Events;

namespace SBPweb.PROvibe.Client.Framework.Contracts.Content
{

    public interface ISmartpart
    {

        [DataMember]
        IPage ParentPage
        {
            get;
        }

        [DataMember]
        string Caption
        {
            get;
        }

        [DataMember]
        bool IsInContainer
        {
            get;
        }

        ISmartpartContainer Container
        {
            get;
        }

        event EventHandler<CancelEventArgs> Showing;

        event EventHandler<CancelEventArgs> Hiding;


        void Show();

        void Hide();

        void Collapse();

        void Expand();


    }

}
